Menu
Publications
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
Editor-in-Chief
Nikiforov
Vladimir O.
D.Sc., Prof.
Partners
doi: 10.17586/2226-1494-2021-21-4-525-534
An automata-based programming engine
Read the full article ';
Article in Russian
For citation:
Abstract
For citation:
Dagaev D.V. An automata-based programming engine. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2021, vol. 21, no. 4, pp. 525–534 (in Russian). doi: 10.17586/2226-1494-2021-21-4-525-534
Abstract
Automata-based programming considers program systems construction as finite state machines that demonstrate state-based behavior. This paper analyzes approaches to data structures and their realization in different programming paradigms. The requirements for automata style implementations are estimated for actual tasks. It is shown that automata-based algorithms need approaches beyond the standard object-oriented inheritance and polymorphism. The Liskov substitution principle is considered as an implementation base instead them. Data-oriented programming approach and in particular data and code separation form the backbone of the engine. The work describes the automata data structure and code-data interaction. The dynamically loaded modules and representations of data, code and schemes provide the main building blocks. Automata-based programming engine conception is introduced to clue all above. This engine supports distributed systems referencing. In order to implement an automata-based programming engine, the pilot project has to meet a set of requirements, including modular programming support, extended metadata availability and code-free read-only data access. Oberon/Component Pascal programming language is therefore chosen, along with a BlackBox Component Builder graphical environment. Automata-based programming engine prototype is implemented as Abpe subsystem for BlackBox. Several example automata-based modules demonstrate functional interacting programs.
Keywords: automata-based programming, data-oriented programming, Liskov substitution principle, Oberon, Component Pascal
Acknowledgements. The study was implemented within the framework of “Informatika-21” (a non-commercial project to promulgate scientific rationality for IT education).
References
Acknowledgements. The study was implemented within the framework of “Informatika-21” (a non-commercial project to promulgate scientific rationality for IT education).
References
-
Shalyto A. Automata-based programming paradigm. Scientific and Technical Bulletin of St. Petersburg State University of Information Technologies, Mechanics and Optics, 2008, no. 53, pp. 3–23. (in Russian)
-
Polikarpova N.I., Shalyto A.A. Automata-Based Programming. St. Petersburg, 2008, 167 p. (in Russian)
-
Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns. Elements of Reusable Object-Oriented Software. Pearson Education, 1994, 395 p.
-
Malakhovskyi Ya.M. Automata Implementation in Functional Programming Languages. Thesis. St. Petersburg, ITMO University, 2009, 68 p. (in Russian)
-
Shelekhov V.I. Automata-based software engineering: the language and development methods. Software Engineering, 2014, № 4. С. 3–15. (in Russian)
-
Dagaev D.V. Towards developing of Oberon system with specific requirements of ergodicity. Proceedings of ISP RAS, 2020, vol. 32, no. 6, pp. 67–78. (in Russian). https://doi.org/10.15514/ISPRAS-2020-32(6)-5
-
Shalyto A.A., Shopyrin D.G. Object-oriented approach to a automata programming. Information and Control Systems, 2003, no. 5, pp. 29–39. (in Russian)
-
Shamgunov N.N., Korneev G.A., Shalyto A.A. State machine - a new design pattern. Information and Control Systems, 2004, no. 5, pp. 13–25. (in Russian)
-
Martin R.C. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall, 2017, 432 p.
-
Joshi R. Data-Oriented Architecture: A Loosely-Coupled Real-Time SOA. Real-Time Innovations, Inc., 2007 August, 54 p.
-
Robbins A. Linux Programming by Example. Prentice Hall Professional Technical Reference, 2004, 687 p.
-
Harel D., Pnueli A. On the development of reactive systems. Logic and Models of Concurrent Systems. Springer Verlag, 1985, pp. 477–498. NATO ASI Series, Series F: Computer and Systems Sciences, vol. 13. https://doi.org/10.1007/978-3-642-82453-1_17
-
Dijkstra E.W. On the role of scientific thought. Selected Writings on Computing: A Personal Perspective. New York, NY, USA, Springer-Verlag, 1982, pp. 60–66. https://doi.org/10.1007/978-1-4612-5695-3_12
-
Reiser M., Wirth N. Programming in Oberon: Steps Beyond Pascal and Modula. ACM Press, 1992, 320 p.